package com.cloud.quickcore.shiro;

import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.util.ByteSource;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * 密码、盐生成器
 * @author NiJo_H
 * @version 1.0
 * @date 2019/8/4 18:00
 */
@Component
public class SimpleHashFactory {

    /**
     * 生成盐
     * */
    public String SimpleHashSalt(){
        //盐：为了即使相同的密码不同的盐加密后的结果也不同
        return ByteSource.Util.bytes(LocalDateTime.now().toString()).toHex();
    }


    /**
     * 生成密码
     * @param salt 盐
     * @param  pwd 明文密码
     * */
    public String SimpleHashPwd(String salt,String pwd){
        //加密方式
        String hashAlgorithmName = "SHA-256";
        //加密次数
        int hashIterations = 5;
        return new SimpleHash(hashAlgorithmName, pwd, salt, hashIterations).toString();
    }
}
